home *** CD-ROM | disk | FTP | other *** search
/ The Sunday Times: Parent Power / The Sunday Times - Parent Power.iso / pc / engine / map.swf / scripts / frame_1 / DoAction_3.as < prev    next >
Encoding:
Text File  |  2005-10-31  |  4.5 KB  |  176 lines

  1. FRAME_WIDTH = frame_mc._width;
  2. FRAME_HEIGHT = frame_mc._height;
  3. CLICK_ZOOM_FACTOR = 3;
  4. MAX_SCALE = 900;
  5. marquee_mc._visible = false;
  6. cursor_mc._visible = false;
  7. zoom_out_btn._visible = false;
  8. arrZoomDetails = [];
  9. blnZoomCursor = false;
  10. nmMapClipX = map_mc._x;
  11. nmMapClipY = map_mc._y;
  12. nmMapScale = map_mc._xscale;
  13. setMap = function(x, y, scale)
  14. {
  15.    map_mc._x = x;
  16.    map_mc._y = y;
  17.    map_mc._xscale = map_mc._yscale = scale;
  18.    LEAmap.oBroadcaster.broadcastMessage("onZoomChange",scale);
  19. };
  20. killZoomCursor = function()
  21. {
  22.    blnZoomCursor = false;
  23.    cursor_mc._visible = false;
  24.    cursor_mc.stopDrag();
  25.    Mouse.show();
  26. };
  27. zoomIn = function()
  28. {
  29.    if(!blnZoomCursor)
  30.    {
  31.       blnZoomCursor = true;
  32.       cursor_mc._visible = true;
  33.       cursor_mc.startDrag(true,frame_mc._x,frame_mc._y,frame_mc._x + FRAME_WIDTH,frame_mc._y + FRAME_HEIGHT);
  34.       Mouse.hide();
  35.    }
  36.    else
  37.    {
  38.       killZoomCursor();
  39.    }
  40. };
  41. zoomOut = function()
  42. {
  43.    var _loc2_ = arrZoomDetails.length;
  44.    if(_loc2_ > 0)
  45.    {
  46.       var _loc1_ = arrZoomDetails.pop();
  47.       setMap(_loc1_.x,_loc1_.y,_loc1_.scale);
  48.       if(_loc2_ == 1)
  49.       {
  50.          zoom_out_btn._visible = false;
  51.       }
  52.    }
  53. };
  54. logZoomDetails = function()
  55. {
  56.    var _loc1_ = {};
  57.    _loc1_.x = map_mc._x;
  58.    _loc1_.y = map_mc._y;
  59.    _loc1_.scale = map_mc._xscale;
  60.    arrZoomDetails.push(_loc1_);
  61. };
  62. resetZoom = function()
  63. {
  64.    setMap(nmMapClipX,nmMapClipY,nmMapScale);
  65. };
  66. cursor_mc.onPress = function()
  67. {
  68.    var _loc1_ = this;
  69.    if(blnZoomCursor)
  70.    {
  71.       _loc1_.nmClickX = map_mc._xmouse;
  72.       _loc1_.nmClickY = map_mc._ymouse;
  73.       _loc1_.onMouseMove = function()
  74.       {
  75.          var _loc1_ = this;
  76.          marquee_mc._visible = true;
  77.          _loc1_.nmX = marquee_mc._x = _xmouse;
  78.          _loc1_.nmY = marquee_mc._y = _ymouse;
  79.          marquee_mc._width = 0;
  80.          marquee_mc._height = 0;
  81.          _loc1_.onMouseMove = function()
  82.          {
  83.             var _loc1_ = this;
  84.             var _loc2_ = _loc1_._x - _loc1_.nmX;
  85.             var _loc3_ = _loc1_._y - _loc1_.nmY;
  86.             if(_loc2_ < 0)
  87.             {
  88.                marquee_mc._x = _loc1_.nmX + _loc2_;
  89.                _loc1_.blnXswap = true;
  90.             }
  91.             else
  92.             {
  93.                _loc1_.blnXswap = false;
  94.             }
  95.             if(_loc3_ < 0)
  96.             {
  97.                marquee_mc._y = _loc1_.nmY + _loc3_;
  98.                _loc1_.blnYswap = true;
  99.             }
  100.             else
  101.             {
  102.                _loc1_.blnYswap = false;
  103.             }
  104.             marquee_mc._width = Math.abs(_loc2_);
  105.             marquee_mc._height = Math.abs(_loc3_);
  106.          };
  107.       };
  108.    }
  109. };
  110. hideMarquee = function()
  111. {
  112.    marquee_mc._visible = false;
  113. };
  114. cursor_mc.onRelease = function()
  115. {
  116.    var _loc3_ = this;
  117.    killZoomCursor();
  118.    delete _loc3_.onMouseMove;
  119.    if(_loc3_.hitTest(zoom_btn))
  120.    {
  121.       hideMarquee();
  122.    }
  123.    else if(_loc3_.hitTest(zoom_out_btn))
  124.    {
  125.       hideMarquee();
  126.       zoomOut();
  127.    }
  128.    else
  129.    {
  130.       logZoomDetails();
  131.       var _loc2_ = undefined;
  132.       var nmYoffset;
  133.       var _loc1_ = undefined;
  134.       if(marquee_mc._visible)
  135.       {
  136.          hideMarquee();
  137.          var nmMW = marquee_mc._width;
  138.          var nmMH = marquee_mc._height;
  139.          _loc2_ = FRAME_WIDTH / nmMW;
  140.          _loc1_ = _loc2_ * map_mc._xscale;
  141.          if(_loc1_ > MAX_SCALE)
  142.          {
  143.             _loc1_ = MAX_SCALE;
  144.             _loc2_ = _loc1_ / map_mc._xscale;
  145.             var nmAW = FRAME_WIDTH / _loc2_;
  146.             marquee_mc._width = nmAW;
  147.             var nmAH = marquee_mc._height = nmAW * (nmMH / nmMW);
  148.             marquee_mc._x -= (nmAW - nmMW) / 2;
  149.             marquee_mc._y -= (nmAH - nmMH) / 2;
  150.             nmMW = nmAW;
  151.             nmMH = nmAH;
  152.          }
  153.          var nmCurrentS = 1 / (map_mc._xscale / 100);
  154.          _loc3_.nmClickX = (marquee_mc._x - map_mc._x) * nmCurrentS;
  155.          _loc3_.nmClickY = (marquee_mc._y - map_mc._y) * nmCurrentS;
  156.          nmYoffset = nmMH * _loc2_;
  157.       }
  158.       else
  159.       {
  160.          _loc2_ = CLICK_ZOOM_FACTOR;
  161.          nmYoffset = 0;
  162.          _loc1_ = _loc2_ * map_mc._xscale;
  163.          _loc1_ = Math.min(MAX_SCALE,_loc1_);
  164.       }
  165.       var nmS = _loc1_ / 100;
  166.       var x = nmMapClipX - _loc3_.nmClickX * nmS;
  167.       var y = nmMapClipY - _loc3_.nmClickY * nmS;
  168.       if(nmYoffset == 0)
  169.       {
  170.          x += FRAME_WIDTH / 2;
  171.       }
  172.       y += (FRAME_HEIGHT - nmYoffset) / 2;
  173.       setMap(x,y,_loc1_);
  174.    }
  175. };
  176.